The following code load the necessary packages.
library(tidyverse)
library(ggthemes)
The following code read the data from my computer. But I saved all the data on a .RData file. This file is uploaded to github so everyone can download it and check the code by yourself.
read.data <- function(year, file, variables){
censo.escolar.year <- read_delim(file,
delim = ';',
locale = locale(encoding = 'WINDOWS-1252'),
escape_double = TRUE,
trim_ws = TRUE,
col_select = variables)}
variables <- c('NU_ANO_CENSO', 'NO_REGIAO', 'CO_REGIAO',
'CO_UF', 'NO_MUNICIPIO', 'CO_ENTIDADE',
'TP_DEPENDENCIA', 'TP_LOCALIZACAO', 'TP_CATEGORIA_ESCOLA_PRIVADA',
'TP_SITUACAO_FUNCIONAMENTO','QT_COMP_ALUNO',
'IN_DESKTOP_ALUNO',
'QT_DESKTOP_ALUNO', 'IN_COMP_PORTATIL_ALUNO',
'QT_COMP_PORTATIL_ALUNO', 'IN_TABLET_ALUNO',
'QT_COMPUTADOR', 'QT_COMP_ADMINISTRATIVO',
'QT_TABLET_ALUNO', 'IN_INTERNET',
'IN_INTERNET_ALUNOS', 'IN_INTERNET_APRENDIZAGEM',
'IN_INTERNET_COMUNIDADE', 'IN_BANDA_LARGA',
'QT_MAT_BAS_D', 'QT_MAT_BAS_N', 'QT_MAT_BAS_EAD',
'IN_FUND', 'IN_FUND_AI', 'IN_FUND_AF', 'IN_MED',
'QT_MAT_FUND', 'QT_MAT_FUND_AI', 'QT_MAT_FUND_AF',
'QT_MAT_MED', 'QT_MAT_EJA_MED', 'QT_MAT_FUND_INT',
'QT_MAT_FUND_AI_INT', 'QT_MAT_FUND_AF_INT',
'QT_MAT_MED_INT')
file.2022 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2022/Dados/microdados_ed_basica_2022.csv'
file.2021 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2021/Dados/microdados_ed_basica_2021.csv'
file.2020 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2020/Dados/microdados_ed_basica_2020.csv'
file.2019 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2019/Dados/microdados_ed_basica_2019.csv'
file.2018 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2018/Dados/microdados_ed_basica_2018.csv'
file.2017 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2017/Dados/microdados_ed_basica_2017.csv'
file.2016 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2016/Dados/microdados_ed_basica_2016.csv'
file.2015 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2015/Dados/microdados_ed_basica_2015.csv'
file.2014 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2014/Dados/microdados_ed_basica_2014.csv'
file.2013 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2013/Dados/microdados_ed_basica_2013.csv'
file.2012 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2012/Dados/microdados_ed_basica_2012.csv'
file.2011 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2011/Dados/microdados_ed_basica_2011.csv'
file.2010 <- '~/Documentos/microdados/censo escolar/microdados_ed_basica_2010/Dados/microdados_ed_basica_2010.csv'
censo.escolar.2022 <- read.data(2022, file.2022, variables)
censo.escolar.2021 <- read.data(2021, file.2021, variables)
censo.escolar.2020 <- read.data(2020, file.2020, variables)
censo.escolar.2019 <- read.data(2019, file.2019, variables)
censo.escolar.2018 <- read.data(2018, file.2018, variables)
censo.escolar.2017 <- read.data(2017, file.2017, variables)
censo.escolar.2016 <- read.data(2016, file.2016, variables)
censo.escolar.2015 <- read.data(2015, file.2015, variables)
censo.escolar.2014 <- read.data(2014, file.2014, variables)
censo.escolar.2013 <- read.data(2013, file.2013, variables)
censo.escolar.2012 <- read.data(2012, file.2012, variables)
censo.escolar.2011 <- read.data(2011, file.2011, variables)
censo.escolar.2010 <- read.data(2010, file.2010, variables)
Now, let’s bind all this data.frame in only one data.frame called
censo.escolar.
I’ve saved the data as censo_escolar.Rdata. This file is available on my repo: repo
To read the censo_escolar.Rdata, you can use the following code: > load(“paste_the_file_directory_here”)
To make data analysis easier, it is good practice to rename the variables. Let’s do it.
Before analyse the data is interesting to look at the format of all variables.
## Rows: 3,017,633
## Columns: 40
## $ Ano <dbl> 2010, 2010…
## $ Nome_região_geográfica <chr> "Norte", "…
## $ Código_região_geográfica <dbl> 1, 1, 1, 1…
## $ Código_UF <dbl> 11, 11, 11…
## $ Nome_Município <chr> "Alta Flor…
## $ Código_Escola <dbl> 11022558, …
## $ Dependência_Administrativa <dbl> 2, 2, 3, 3…
## $ Localização <dbl> 2, 1, 2, 2…
## $ Categoria_escola_privada <dbl> 0, 0, 0, 0…
## $ Situação_funcionamento <dbl> 1, 1, 1, 1…
## $ Quantidade_computadores_uso_alunos <dbl> 0, 0, 0, 0…
## $ Computadores_em_uso_pelos_alunos_desktop <dbl> 0, 0, 0, 0…
## $ Quantidade_computadores_em_uso_pelos_alunos_desktop <dbl> 0, 0, 0, 0…
## $ Computadores_em_uso_pelos_alunos_portátil <dbl> 0, 0, 0, 0…
## $ Quantidade_computadores_em_uso_pelos_alunos_portátil <dbl> 0, 0, 0, 0…
## $ Computadores_em_uso_pelos_alunos_tablet <dbl> 0, 0, 0, 0…
## $ Quantidade_computadores_escola <dbl> 0, 9, 0, 0…
## $ Quantidade_computadores_uso_administrativo <dbl> 0, 9, 0, 0…
## $ Quantidade_computadores_em_uso_pelos_alunos_tablet <dbl> 0, 0, 0, 0…
## $ Acesso_Internet <dbl> 0, 1, 0, 0…
## $ Acesso_Internet_alunos <dbl> 0, 0, 0, 0…
## $ Acesso_Internet_processos_de_ensino_aprendizagem <dbl> 0, 0, 0, 0…
## $ Acesso_Internet_Para_comunidade <dbl> 0, 0, 0, 0…
## $ Internet_Banda_Larga <dbl> 0, 1, 0, 0…
## $ Número_Matrículas_Educação_Básica_Diurno <dbl> 5, 0, 0, 0…
## $ Número_Matrículas_Educação_Básica_Noturno <dbl> 0, 660, 0,…
## $ Número_Matrículas_Educação_Básica_Distância <dbl> 0, 0, 0, 0…
## $ Ensino_Fundamental_Possui_matrículas <dbl> 1, 0, 1, 1…
## $ Ensino_Fundamental_Anos_Iniciais_Possui_matrículas <dbl> 1, 0, 1, 1…
## $ Ensino_Fundamental_Anos_Finais_Possui_matrículas <dbl> 0, 0, 0, 0…
## $ Ensino_Médio_Possui_matrículas <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Fundamental <dbl> 5, 0, 19, …
## $ Número_Matrículas_Ensino_Fundamental_Anos_Iniciais <dbl> 5, 0, 19, …
## $ Número_Matrículas_Ensino_Fundamental_Anos_Finais <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Médio <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Médio_EJA <dbl> 0, 359, 0,…
## $ Número_Matrículas_Ensino_Fundamental_integral <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Fundamental_Anos_Iniciais_integral <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Fundamental_Anos_Finais_integral <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Médio_Integral <dbl> 0, 0, 0, 0…
Let’s change the format of variables that should be factors. In R, factors are used to work with categorical variables.
Now, it is possible to see that we have the correct format of categorical variables.
## Rows: 3,017,633
## Columns: 40
## $ Ano <dbl> 2010, 2010…
## $ Nome_região_geográfica <fct> Norte, Nor…
## $ Código_região_geográfica <dbl> 1, 1, 1, 1…
## $ Código_UF <dbl> 11, 11, 11…
## $ Nome_Município <chr> "Alta Flor…
## $ Código_Escola <dbl> 11022558, …
## $ Dependência_Administrativa <fct> Estadual, …
## $ Localização <fct> Rural, Urb…
## $ Categoria_escola_privada <fct> NA, NA, NA…
## $ Situação_funcionamento <fct> Em_ativida…
## $ Quantidade_computadores_uso_alunos <dbl> 0, 0, 0, 0…
## $ Computadores_em_uso_pelos_alunos_desktop <fct> Não, Não, …
## $ Quantidade_computadores_em_uso_pelos_alunos_desktop <dbl> 0, 0, 0, 0…
## $ Computadores_em_uso_pelos_alunos_portátil <fct> Não, Não, …
## $ Quantidade_computadores_em_uso_pelos_alunos_portátil <dbl> 0, 0, 0, 0…
## $ Computadores_em_uso_pelos_alunos_tablet <fct> Não, Não, …
## $ Quantidade_computadores_escola <dbl> 0, 9, 0, 0…
## $ Quantidade_computadores_uso_administrativo <dbl> 0, 9, 0, 0…
## $ Quantidade_computadores_em_uso_pelos_alunos_tablet <dbl> 0, 0, 0, 0…
## $ Acesso_Internet <fct> Não, Sim, …
## $ Acesso_Internet_alunos <fct> Não, Não, …
## $ Acesso_Internet_processos_de_ensino_aprendizagem <fct> Não, Não, …
## $ Acesso_Internet_Para_comunidade <fct> Não, Não, …
## $ Internet_Banda_Larga <fct> Não, Sim, …
## $ Número_Matrículas_Educação_Básica_Diurno <dbl> 5, 0, 0, 0…
## $ Número_Matrículas_Educação_Básica_Noturno <dbl> 0, 660, 0,…
## $ Número_Matrículas_Educação_Básica_Distância <dbl> 0, 0, 0, 0…
## $ Ensino_Fundamental_Possui_matrículas <fct> Sim, Não, …
## $ Ensino_Fundamental_Anos_Iniciais_Possui_matrículas <fct> Sim, Não, …
## $ Ensino_Fundamental_Anos_Finais_Possui_matrículas <fct> Não, Não, …
## $ Ensino_Médio_Possui_matrículas <fct> Não, Não, …
## $ Número_Matrículas_Ensino_Fundamental <dbl> 5, 0, 19, …
## $ Número_Matrículas_Ensino_Fundamental_Anos_Iniciais <dbl> 5, 0, 19, …
## $ Número_Matrículas_Ensino_Fundamental_Anos_Finais <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Médio <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Médio_EJA <dbl> 0, 359, 0,…
## $ Número_Matrículas_Ensino_Fundamental_integral <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Fundamental_Anos_Iniciais_integral <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Fundamental_Anos_Finais_integral <dbl> 0, 0, 0, 0…
## $ Número_Matrículas_Ensino_Médio_Integral <dbl> 0, 0, 0, 0…
After formatting the variables, let’s make some exploratory data analysis. First, let’s take a look at the number of school enrollment at basic education.
Let’s use a graph to better visualize this data.
It is possible to conclude that the number of enrollment at basic education is falling.
Now, the enrollment at basic education separated by location of school.
The graph above allows to conclude that the number of enrollments at elementary school is falling at rural areas and is growing at urban areas
The same happens to the number of enrollments at high school as we can see at the graph bellow.
Now, let’s visualize a table of the proportion of school with fast internet connection.
Now, a graph to better visualization.
The next table shows the proportion of schools with fast internet connection.
The graph bellow shows the proportion of schools with fast internet connection by location.
## `summarise()` has grouped output by 'Ano'. You can override using the `.groups`
## argument.
This dataset has information about the number of tablets available to students. Let’s explore this information.